<!DOCTYPE html><html><head>
      <title>13-C++&#x6807;&#x51C6;&#x53D8;&#x8FC1;</title>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      
      
        <script type="text/x-mathjax-config">
          MathJax.Hub.Config({"extensions":["tex2jax.js"],"jax":["input/TeX","output/HTML-CSS"],"messageStyle":"none","tex2jax":{"processEnvironments":false,"processEscapes":true,"inlineMath":[["$","$"],["\\(","\\)"]],"displayMath":[["$$","$$"],["\\[","\\]"]]},"TeX":{"extensions":["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"]},"HTML-CSS":{"availableFonts":["TeX"]}});
        </script>
        <script type="text/javascript" async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js"></script>
        
      
      
      
      
      
      
      
      
      
      <style>
      /**
 * prism.js Github theme based on GitHub's theme.
 * @author Sam Clarke
 */
code[class*="language-"],
pre[class*="language-"] {
  color: #333;
  background: none;
  font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
  text-align: left;
  white-space: pre;
  word-spacing: normal;
  word-break: normal;
  word-wrap: normal;
  line-height: 1.4;

  -moz-tab-size: 8;
  -o-tab-size: 8;
  tab-size: 8;

  -webkit-hyphens: none;
  -moz-hyphens: none;
  -ms-hyphens: none;
  hyphens: none;
}

/* Code blocks */
pre[class*="language-"] {
  padding: .8em;
  overflow: auto;
  /* border: 1px solid #ddd; */
  border-radius: 3px;
  /* background: #fff; */
  background: #f5f5f5;
}

/* Inline code */
:not(pre) > code[class*="language-"] {
  padding: .1em;
  border-radius: .3em;
  white-space: normal;
  background: #f5f5f5;
}

.token.comment,
.token.blockquote {
  color: #969896;
}

.token.cdata {
  color: #183691;
}

.token.doctype,
.token.punctuation,
.token.variable,
.token.macro.property {
  color: #333;
}

.token.operator,
.token.important,
.token.keyword,
.token.rule,
.token.builtin {
  color: #a71d5d;
}

.token.string,
.token.url,
.token.regex,
.token.attr-value {
  color: #183691;
}

.token.property,
.token.number,
.token.boolean,
.token.entity,
.token.atrule,
.token.constant,
.token.symbol,
.token.command,
.token.code {
  color: #0086b3;
}

.token.tag,
.token.selector,
.token.prolog {
  color: #63a35c;
}

.token.function,
.token.namespace,
.token.pseudo-element,
.token.class,
.token.class-name,
.token.pseudo-class,
.token.id,
.token.url-reference .token.variable,
.token.attr-name {
  color: #795da3;
}

.token.entity {
  cursor: help;
}

.token.title,
.token.title .token.punctuation {
  font-weight: bold;
  color: #1d3e81;
}

.token.list {
  color: #ed6a43;
}

.token.inserted {
  background-color: #eaffea;
  color: #55a532;
}

.token.deleted {
  background-color: #ffecec;
  color: #bd2c00;
}

.token.bold {
  font-weight: bold;
}

.token.italic {
  font-style: italic;
}


/* JSON */
.language-json .token.property {
  color: #183691;
}

.language-markup .token.tag .token.punctuation {
  color: #333;
}

/* CSS */
code.language-css,
.language-css .token.function {
  color: #0086b3;
}

/* YAML */
.language-yaml .token.atrule {
  color: #63a35c;
}

code.language-yaml {
  color: #183691;
}

/* Ruby */
.language-ruby .token.function {
  color: #333;
}

/* Markdown */
.language-markdown .token.url {
  color: #795da3;
}

/* Makefile */
.language-makefile .token.symbol {
  color: #795da3;
}

.language-makefile .token.variable {
  color: #183691;
}

.language-makefile .token.builtin {
  color: #0086b3;
}

/* Bash */
.language-bash .token.keyword {
  color: #0086b3;
}

/* highlight */
pre[data-line] {
  position: relative;
  padding: 1em 0 1em 3em;
}
pre[data-line] .line-highlight-wrapper {
  position: absolute;
  top: 0;
  left: 0;
  background-color: transparent;
  display: block;
  width: 100%;
}

pre[data-line] .line-highlight {
  position: absolute;
  left: 0;
  right: 0;
  padding: inherit 0;
  margin-top: 1em;
  background: hsla(24, 20%, 50%,.08);
  background: linear-gradient(to right, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0));
  pointer-events: none;
  line-height: inherit;
  white-space: pre;
}

pre[data-line] .line-highlight:before, 
pre[data-line] .line-highlight[data-end]:after {
  content: attr(data-start);
  position: absolute;
  top: .4em;
  left: .6em;
  min-width: 1em;
  padding: 0 .5em;
  background-color: hsla(24, 20%, 50%,.4);
  color: hsl(24, 20%, 95%);
  font: bold 65%/1.5 sans-serif;
  text-align: center;
  vertical-align: .3em;
  border-radius: 999px;
  text-shadow: none;
  box-shadow: 0 1px white;
}

pre[data-line] .line-highlight[data-end]:after {
  content: attr(data-end);
  top: auto;
  bottom: .4em;
}html body{font-family:"Helvetica Neue",Helvetica,"Segoe UI",Arial,freesans,sans-serif;font-size:16px;line-height:1.6;color:#333;background-color:#fff;overflow:initial;box-sizing:border-box;word-wrap:break-word}html body>:first-child{margin-top:0}html body h1,html body h2,html body h3,html body h4,html body h5,html body h6{line-height:1.2;margin-top:1em;margin-bottom:16px;color:#000}html body h1{font-size:2.25em;font-weight:300;padding-bottom:.3em}html body h2{font-size:1.75em;font-weight:400;padding-bottom:.3em}html body h3{font-size:1.5em;font-weight:500}html body h4{font-size:1.25em;font-weight:600}html body h5{font-size:1.1em;font-weight:600}html body h6{font-size:1em;font-weight:600}html body h1,html body h2,html body h3,html body h4,html body h5{font-weight:600}html body h5{font-size:1em}html body h6{color:#5c5c5c}html body strong{color:#000}html body del{color:#5c5c5c}html body a:not([href]){color:inherit;text-decoration:none}html body a{color:#08c;text-decoration:none}html body a:hover{color:#00a3f5;text-decoration:none}html body img{max-width:100%}html body>p{margin-top:0;margin-bottom:16px;word-wrap:break-word}html body>ul,html body>ol{margin-bottom:16px}html body ul,html body ol{padding-left:2em}html body ul.no-list,html body ol.no-list{padding:0;list-style-type:none}html body ul ul,html body ul ol,html body ol ol,html body ol ul{margin-top:0;margin-bottom:0}html body li{margin-bottom:0}html body li.task-list-item{list-style:none}html body li>p{margin-top:0;margin-bottom:0}html body .task-list-item-checkbox{margin:0 .2em .25em -1.8em;vertical-align:middle}html body .task-list-item-checkbox:hover{cursor:pointer}html body blockquote{margin:16px 0;font-size:inherit;padding:0 15px;color:#5c5c5c;background-color:#f0f0f0;border-left:4px solid #d6d6d6}html body blockquote>:first-child{margin-top:0}html body blockquote>:last-child{margin-bottom:0}html body hr{height:4px;margin:32px 0;background-color:#d6d6d6;border:0 none}html body table{margin:10px 0 15px 0;border-collapse:collapse;border-spacing:0;display:block;width:100%;overflow:auto;word-break:normal;word-break:keep-all}html body table th{font-weight:bold;color:#000}html body table td,html body table th{border:1px solid #d6d6d6;padding:6px 13px}html body dl{padding:0}html body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:bold}html body dl dd{padding:0 16px;margin-bottom:16px}html body code{font-family:Menlo,Monaco,Consolas,'Courier New',monospace;font-size:.85em !important;color:#000;background-color:#f0f0f0;border-radius:3px;padding:.2em 0}html body code::before,html body code::after{letter-spacing:-0.2em;content:"\00a0"}html body pre>code{padding:0;margin:0;font-size:.85em !important;word-break:normal;white-space:pre;background:transparent;border:0}html body .highlight{margin-bottom:16px}html body .highlight pre,html body pre{padding:1em;overflow:auto;font-size:.85em !important;line-height:1.45;border:#d6d6d6;border-radius:3px}html body .highlight pre{margin-bottom:0;word-break:normal}html body pre code,html body pre tt{display:inline;max-width:initial;padding:0;margin:0;overflow:initial;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}html body pre code:before,html body pre tt:before,html body pre code:after,html body pre tt:after{content:normal}html body p,html body blockquote,html body ul,html body ol,html body dl,html body pre{margin-top:0;margin-bottom:16px}html body kbd{color:#000;border:1px solid #d6d6d6;border-bottom:2px solid #c7c7c7;padding:2px 4px;background-color:#f0f0f0;border-radius:3px}@media print{html body{background-color:#fff}html body h1,html body h2,html body h3,html body h4,html body h5,html body h6{color:#000;page-break-after:avoid}html body blockquote{color:#5c5c5c}html body pre{page-break-inside:avoid}html body table{display:table}html body img{display:block;max-width:100%;max-height:100%}html body pre,html body code{word-wrap:break-word;white-space:pre}}.markdown-preview{width:100%;height:100%;box-sizing:border-box}.markdown-preview .pagebreak,.markdown-preview .newpage{page-break-before:always}.markdown-preview pre.line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}.markdown-preview pre.line-numbers>code{position:relative}.markdown-preview pre.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:1em;font-size:100%;left:0;width:3em;letter-spacing:-1px;border-right:1px solid #999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.markdown-preview pre.line-numbers .line-numbers-rows>span{pointer-events:none;display:block;counter-increment:linenumber}.markdown-preview pre.line-numbers .line-numbers-rows>span:before{content:counter(linenumber);color:#999;display:block;padding-right:.8em;text-align:right}.markdown-preview .mathjax-exps .MathJax_Display{text-align:center !important}.markdown-preview:not([for="preview"]) .code-chunk .btn-group{display:none}.markdown-preview:not([for="preview"]) .code-chunk .status{display:none}.markdown-preview:not([for="preview"]) .code-chunk .output-div{margin-bottom:16px}.markdown-preview .md-toc{padding:0}.markdown-preview .md-toc .md-toc-link-wrapper .md-toc-link{display:inline;padding:.25rem 0}.markdown-preview .md-toc .md-toc-link-wrapper .md-toc-link p,.markdown-preview .md-toc .md-toc-link-wrapper .md-toc-link div{display:inline}.markdown-preview .md-toc .md-toc-link-wrapper.highlighted .md-toc-link{font-weight:800}.scrollbar-style::-webkit-scrollbar{width:8px}.scrollbar-style::-webkit-scrollbar-track{border-radius:10px;background-color:transparent}.scrollbar-style::-webkit-scrollbar-thumb{border-radius:5px;background-color:rgba(150,150,150,0.66);border:4px solid rgba(150,150,150,0.66);background-clip:content-box}html body[for="html-export"]:not([data-presentation-mode]){position:relative;width:100%;height:100%;top:0;left:0;margin:0;padding:0;overflow:auto}html body[for="html-export"]:not([data-presentation-mode]) .markdown-preview{position:relative;top:0}@media screen and (min-width:914px){html body[for="html-export"]:not([data-presentation-mode]) .markdown-preview{padding:2em calc(50% - 457px + 2em)}}@media screen and (max-width:914px){html body[for="html-export"]:not([data-presentation-mode]) .markdown-preview{padding:2em}}@media screen and (max-width:450px){html body[for="html-export"]:not([data-presentation-mode]) .markdown-preview{font-size:14px !important;padding:1em}}@media print{html body[for="html-export"]:not([data-presentation-mode]) #sidebar-toc-btn{display:none}}html body[for="html-export"]:not([data-presentation-mode]) #sidebar-toc-btn{position:fixed;bottom:8px;left:8px;font-size:28px;cursor:pointer;color:inherit;z-index:99;width:32px;text-align:center;opacity:.4}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] #sidebar-toc-btn{opacity:1}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc{position:fixed;top:0;left:0;width:300px;height:100%;padding:32px 0 48px 0;font-size:14px;box-shadow:0 0 4px rgba(150,150,150,0.33);box-sizing:border-box;overflow:auto;background-color:inherit}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar{width:8px}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar-track{border-radius:10px;background-color:transparent}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar-thumb{border-radius:5px;background-color:rgba(150,150,150,0.66);border:4px solid rgba(150,150,150,0.66);background-clip:content-box}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc a{text-decoration:none}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc{padding:0 16px}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc .md-toc-link-wrapper .md-toc-link{display:inline;padding:.25rem 0}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc .md-toc-link-wrapper .md-toc-link p,html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc .md-toc-link-wrapper .md-toc-link div{display:inline}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc .md-toc-link-wrapper.highlighted .md-toc-link{font-weight:800}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview{left:300px;width:calc(100% -  300px);padding:2em calc(50% - 457px -  300px/2);margin:0;box-sizing:border-box}@media screen and (max-width:1274px){html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview{padding:2em}}@media screen and (max-width:450px){html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview{width:100%}}html body[for="html-export"]:not([data-presentation-mode]):not([html-show-sidebar-toc]) .markdown-preview{left:50%;transform:translateX(-50%)}html body[for="html-export"]:not([data-presentation-mode]):not([html-show-sidebar-toc]) .md-sidebar-toc{display:none}
/* Please visit the URL below for more information: */
/*   https://shd101wyy.github.io/markdown-preview-enhanced/#/customize-css */
.markdown-preview.markdown-preview {
  /*重头戏开始*/
  /*初始化格式*/
  /* 一级标题 */
  /*三个小点点*/
  /*二级标题*/
  /* 三级标题 */
  /* 四级标题 */
  /* 引用
* 左边缘颜色 border-left-color:black;
* 背景色 background:gray; */
  /* 引用文字 */
  /* 链接 */
  /* 加粗 */
  /* 斜体 */
  /* 加粗斜体 */
  /* 删除线 */
  /* 分割线 */
  /* 图片 */
  /*音频*/
  /*视频*/
  /* 图片描述文字 */
  /* 列表内容 */
  /* ol+p strong {
  margin-left: -16px;
}*/
  /* 序号 */
  /*设置条纹*/
  /*设置首列不同*/
  /* 脚注文字 */
  /* 脚注上标 */
  /* 脚注超链接样式 */
  /* "参考资料"四个字 
* 内容 content: "参考资料";
*/
  /* 参考资料编号 */
  /* 参考资料文字 */
  /* 参考资料超链接 */
  /* 参考资料解释 */
  /* 行间公式*/
  /* 行内公式*/
  /* 滑动图片*/
  /*打印时强制下一页*/
  /*容器和媒体*/
  /*代码块*/
  /* 行内代码 */
  /* 非微信代码块
* 代码块不换行 display:-webkit-box !important;
* 代码块换行 display:block;
*/
  /* 表格内的单元格
* 字体大小 font-size: 16px;
* 边框 border: 1px solid #ccc;
* 内边距 padding: 5px 10px;
*/
  /*mpe的代码样式*/
  /*数学相关*/
}
.markdown-preview.markdown-preview * {
  -webkit-font-smoothing: antialiased;
  -webkit-overflow-scrolling: touch;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  -webkit-text-size-adjust: none;
  -webkit-touch-callout: none;
  box-sizing: border-box;
  font-family: "Inconsolata", "LXGW WenKai Screen R", "Consolas", "monospace", "Monaco", " Lucida Console", " Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", " Courier New";
}
.markdown-preview.markdown-preview body {
  line-height: 1.5em;
  letter-spacing: 0.034em;
  color: #3f3f3f;
  font-size: 16px;
  word-break: all;
  background-color: #ffffff;
  max-width: 1000px;
  /*设置最大宽度*/
  margin: 0 auto;
  /*设置内容居中*/
}
.markdown-preview.markdown-preview h1,
.markdown-preview.markdown-preview h2,
.markdown-preview.markdown-preview h3,
.markdown-preview.markdown-preview h4,
.markdown-preview.markdown-preview h5,
.markdown-preview.markdown-preview h6 {
  margin-bottom: 0.25em;
  margin-top: 0.5em;
}
.markdown-preview.markdown-preview h1::before {
  max-width: 1000px;
  content: " ";
  position: absolute;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  background: #fc625d;
  width: 12px;
  height: 12px;
  left: 10px;
  top: 10px;
  -webkit-box-shadow: 20px 0 #fdbc40, 40px 0 #35cd4b;
  box-shadow: 20px 0 #fdbc40, 40px 0 #35cd4b;
  z-index: 2;
}
.markdown-preview.markdown-preview h1 {
  background-position: center top;
  background-repeat: no-repeat;
  background-size: 70px;
  line-height: 70px;
  margin-top: 10px;
  margin-bottom: 0px;
  text-align: center;
  padding-bottom: 0em;
  border: 0px;
  /* 一级标题内容 */
  font-size: 30px;
  color: #3c70c6;
}
.markdown-preview.markdown-preview h2 {
  display: inline-block;
  background: #2dc878;
  background-repeat: no-repeat;
  background-position: center;
  border-radius: 5px;
  padding: 10px 8px 8px 8px;
  box-shadow: #666666 2px 3px 1.5px 1.5px;
  /* 二级标题内容 */
  color: white;
  font-size: 24px;
  font-weight: normal;
  text-shadow: #666666 1px 1px 1px;
}
.markdown-preview.markdown-preview h2::after {
  display: block;
}
.markdown-preview.markdown-preview h3:before {
  content: "";
  background: size 1.5em;
  display: inline-block;
  margin-top: 0.5em;
  padding-left: 8px;
}
.markdown-preview.markdown-preview h3 {
  display: block;
  font-size: 22px;
  font-weight: bold;
  color: #1956b8;
  line-height: 1.5em;
}
.markdown-preview.markdown-preview h4:before {
  content: "";
  background: size 1.5em;
  display: inline-block;
  text-indent: 0.75em;
}
.markdown-preview.markdown-preview h4 {
  display: block;
  font-size: 20px;
  font-weight: bold;
  color: #016063;
  text-indent: 0.75em;
  line-height: 1.5em;
}
.markdown-preview.markdown-preview h5 {
  font-weight: bold;
  color: #219c67;
  font-size: 18px;
}
.markdown-preview.markdown-preview h6 {
  font-size: 16px;
  color: #eb085f;
  line-height: 1.5em;
  text-align: center;
  font-style: italic;
  font-weight: bold;
}
.markdown-preview.markdown-preview p {
  padding-top: 0px;
  padding-left: 1em;
  padding-right: 1em;
  color: #4a4a4a;
  line-height: 1.5em;
  font-size: 16px;
  /* text-indent: 2em;*/
  /*首行缩进*/
}
.markdown-preview.markdown-preview blockquote {
  padding: 15px 15px 10px 10px;
  line-height: 27px;
  border-radius: 10px;
  display: block;
  border-color: #bababa;
  color: #656565;
  background-color: #f3f0ea;
  font-style: italic;
  border-left: 5px solid;
  padding-left: 1em;
  max-width: 90%;
  margin: 0 auto;
  margin-bottom: 0.5em;
}
.markdown-preview.markdown-preview blockquote p {
  padding: 0px;
  font-size: 15px;
  color: #126b15;
}
.markdown-preview.markdown-preview a:hover,
.markdown-preview.markdown-preview a:active {
  font-size: larger;
}
@supports (-webkit-background-clip: text) or (background-clip: text) {
  .markdown-preview.markdown-preview a:hover,
  .markdown-preview.markdown-preview a:active {
    background: linear-gradient(to right, red, #01d6c1);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
  }
}
.markdown-preview.markdown-preview a {
  color: #143974;
  text-decoration: underline;
}
.markdown-preview.markdown-preview strong {
  line-height: 1.75em;
  color: #ff1818;
}
.markdown-preview.markdown-preview em {
  color: #126b15;
  /*字符间距*/
}
.markdown-preview.markdown-preview em strong {
  color: #126b15;
  /*字符间距*/
}
.markdown-preview.markdown-preview del,
.markdown-preview.markdown-preview s {
  font-style: italic;
  text-decoration: line-through;
  font-weight: bolder;
  color: #fc625d;
}
.markdown-preview.markdown-preview sub {
  color: #0b941b;
}
.markdown-preview.markdown-preview hr {
  height: 2px;
  padding: 0;
  border: none;
  text-align: center;
  background-image: linear-gradient(to right, rgba(60, 122, 198, 0), #063a7a, rgba(60, 122, 198, 0));
}
.markdown-preview.markdown-preview .container img {
  max-width: 100%;
}
.markdown-preview.markdown-preview img {
  display: block;
  border-radius: 10px;
  max-width: 99%;
  margin: 0 auto;
}
.markdown-preview.markdown-preview img:active {
  transform: scale(2);
}
.markdown-preview.markdown-preview audio {
  display: block;
  margin: 0 auto;
}
.markdown-preview.markdown-preview video {
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 80%;
  max-height: 700px;
  margin: 0 auto;
}
@media only screen and (max-width: 480px) {
  .markdown-preview.markdown-preview {
    /*此适配不同手机型号下文字，图片的大小*/
  }
}
@media only screen and (max-width: 375px) {
  .markdown-preview.markdown-preview {
    /*此适配不同手机型号下文字，图片的大小*/
  }
}
.markdown-preview.markdown-preview figcaption {
  display: block;
  font-size: 12px;
  font-family: PingFangSC-Light;
}
.markdown-preview.markdown-preview ul,
.markdown-preview.markdown-preview ol {
  margin-top: 0.25em;
  margin-bottom: 0.5em;
  margin-left: 1em;
}
.markdown-preview.markdown-preview p + ul,
.markdown-preview.markdown-preview p + ol {
  margin-top: -1em;
  margin-left: 2em;
}
.markdown-preview.markdown-preview li ul {
  margin-top: 0em;
}
.markdown-preview.markdown-preview li::marker {
  color: #6116ac;
  font-weight: bolder;
  font-style: italic;
}
.markdown-preview.markdown-preview ul li::marker {
  font-style: normal;
  font-weight: 800;
}
.markdown-preview.markdown-preview li {
  list-style-type: decimal;
  list-style-position: outside;
  color: #01474e;
  size: 14px;
}
.markdown-preview.markdown-preview ol li {
  list-style-type: decimal;
  list-style-position: outside;
}
.markdown-preview.markdown-preview ul li {
  list-style-type: disc;
  list-style-position: outside;
}
.markdown-preview.markdown-preview li li {
  list-style-type: lower-latin;
  list-style-position: outside;
}
.markdown-preview.markdown-preview li ol {
  list-style-type: lower-latin;
  list-style-position: outside;
  margin-top: 0px;
}
.markdown-preview.markdown-preview li p {
  margin-left: 0px;
  padding-left: 0px;
}
.markdown-preview.markdown-preview table {
  margin: 0 auto;
  width: 100%;
  font-size: 1em;
  border: 0px;
  border-spacing: 0;
  display: table;
  /*去掉单元格间隙*/
  border-collapse: collapse;
  word-wrap: break-word;
  word-break: keep-all;
}
.markdown-preview.markdown-preview thead {
  background-color: #e0e0e0;
  color: #000;
  text-align: left;
  vertical-align: bottom;
  margin: 0 auto;
  width: 100%;
}
.markdown-preview.markdown-preview thead.md-table-edit {
  background-color: transparent;
}
.markdown-preview.markdown-preview thead th,
.markdown-preview.markdown-preview tfoot th {
  padding: 0.25em 0.25em 0.25em 0.4em;
  text-transform: uppercase;
}
.markdown-preview.markdown-preview th {
  text-align: center;
  font-weight: bolder;
  color: #fff;
  background-color: #353535;
}
.markdown-preview.markdown-preview td {
  vertical-align: middle;
  padding: 0.25em 0.25em 0.25em 0.4em;
  color: #237465;
}
.markdown-preview.markdown-preview tr:nth-of-type(even) {
  background: #eeeded;
}
.markdown-preview.markdown-preview td:nth-child(1) {
  font-weight: bolder;
  font-style: italic;
  color: #064d8c;
}
.markdown-preview.markdown-preview caption {
  color: #000;
  font: italic 85%/1 arial, sans-serif;
  padding: 1em 0;
  text-align: center;
}
.markdown-preview.markdown-preview .md-fences {
  margin-left: 2em;
  margin-bottom: 3em;
}
.markdown-preview.markdown-preview .md-fences .CodeMirror.CodeMirror-wrap {
  top: -0.8em;
}
.markdown-preview.markdown-preview tt {
  font-size: 0.875em;
  line-height: 1.714285em;
}
.markdown-preview.markdown-preview body .task-list {
  padding-left: 1rem;
}
.markdown-preview.markdown-preview body .task-list-item {
  list-style-type: none;
  margin-left: -1.8em;
}
.markdown-preview.markdown-preview body .task-list-item .task-list-item-checkbox {
  margin-right: 0.8em;
}
.markdown-preview.markdown-preview body .task-list-item input:before {
  content: '\221A';
  display: inline-block;
  width: 1.25rem;
  height: 1.5rem;
  vertical-align: middle;
  text-align: center;
  color: #ddd;
  background-color: #F3F2EE;
}
.markdown-preview.markdown-preview body .task-list-item input:checked:before,
.markdown-preview.markdown-preview body .task-list-item input[checked]:before {
  color: inherit;
}
.markdown-preview.markdown-preview body kbd {
  color: #1f0909;
}
.markdown-preview.markdown-preview body li > p {
  left: 0;
}
.markdown-preview.markdown-preview body .md-meta,
.markdown-preview.markdown-preview body .md-before,
.markdown-preview.markdown-preview body .md-after {
  color: #999;
}
.markdown-preview.markdown-preview .footnotes {
  padding-top: 8px;
}
.markdown-preview.markdown-preview .footnote-word {
  color: #3c70c6;
}
.markdown-preview.markdown-preview .footnote-ref {
  color: #3c70c6;
}
.markdown-preview.markdown-preview .footnote-item em {
  color: #3c70c6;
  font-size: 13px;
  font-style: normal;
  border-bottom-color: 1px dashed #3c70c6;
}
.markdown-preview.markdown-preview .footnotes-sep:before {
  background-image: none;
  background-size: none;
  display: block;
  width: auto;
  height: auto;
}
.markdown-preview.markdown-preview .footnote-num {
  color: #3c70c6;
}
.markdown-preview.markdown-preview .footnote-item p {
  color: #3c70c6;
  font-weight: bold;
}
.markdown-preview.markdown-preview .footnote-item a {
  color: #3c70c6;
}
.markdown-preview.markdown-preview .footnote-item p em {
  font-size: 14px;
  font-weight: normal;
  border-bottom: 1px dashed #3c70c6;
}
.markdown-preview.markdown-preview .block-equation svg {
  max-width: 300% !important;
}
.markdown-preview.markdown-preview .inline-equation svg {
  max-width: 300% !important;
}
.markdown-preview.markdown-preview .imageflow-img {
  display: inline-block;
  width: 100%;
  margin-bottom: 0;
}
.markdown-preview.markdown-preview .nextpage {
  page-break-after: always;
  border: 0px;
  background-image: none;
  background: none;
}
.markdown-preview.markdown-preview .container {
  width: 1100px;
  max-width: 100%;
}
.markdown-preview.markdown-preview input {
  text-align: center;
  vertical-align: middle;
}
.markdown-preview.markdown-preview code {
  display: inline-block;
  color: #b83492;
  background-color: #f2fffe;
  border: 2px solid #ccc;
  border-radius: 5px;
  font-weight: 800;
  padding: 0;
  margin: 0;
  text-indent: 0;
}
.markdown-preview.markdown-preview pre[data-line] {
  position: relative;
  padding: 1em 0 1em 3em !important;
}
.markdown-preview.markdown-preview pre[data-line] .line-highlight-wrapper {
  position: absolute;
  top: 0;
  left: 0;
  background-color: transparent;
  display: block;
  width: 100%;
}
.markdown-preview.markdown-preview pre[data-line] .line-highlight {
  position: absolute;
  left: 0;
  right: 0;
  padding: inherit 0;
  margin-top: 1em;
  background: rgba(153, 122, 102, 0.08);
  background: linear-gradient(to right, rgba(153, 122, 102, 0.1) 70%, rgba(153, 122, 102, 0));
  pointer-events: none;
  line-height: inherit;
  white-space: pre;
}
.markdown-preview.markdown-preview pre[data-line] .line-highlight:before,
.markdown-preview.markdown-preview pre[data-line] .line-highlight[data-end]:after {
  content: attr(data-start);
  position: absolute;
  top: 0.4em;
  left: 0.6em;
  min-width: 1em;
  padding: 0 0.5em;
  background-color: rgba(153, 122, 102, 0.4);
  color: #f5f2f0;
  font: bold 65%/1.5 sans-serif;
  text-align: center;
  vertical-align: 0.3em;
  border-radius: 999px;
  text-shadow: none;
  box-shadow: 0 1px white;
}
.markdown-preview.markdown-preview pre[data-line] .line-highlight[data-end]:after {
  content: attr(data-end);
  top: auto;
  bottom: 0.4em;
}
.markdown-preview.markdown-preview pre {
  background: #f0f1f1;
  border: 0px solid #b66a07;
  border-radius: 10px;
  font: 16px/22px, "Microsoft YaHei", Arial, Sans-Serif;
  line-height: 1.35em;
  max-width: 90%;
  text-shadow: none;
  color: #000;
  box-shadow: 0 10px 30px 0 rgba(0, 0, 0, 0.4);
  white-space: pre-wrap;
  word-wrap: break-word;
  margin: auto;
  margin-bottom: 1em;
  margin-top: 0.5em;
  padding-top: 1em;
  padding-bottom: 1em;
  font-weight: 800;
}
.markdown-preview.markdown-preview pre:after {
  color: #ccc;
  content: attr(data-lang);
  font-size: 16px;
  height: 15px;
  line-height: 15px;
  padding: 5px 10px 0;
  position: absolute;
  right: 0;
  text-align: right;
  top: 0;
}
.markdown-preview.markdown-preview .language- {
  padding: 2px;
}
.markdown-preview.markdown-preview pre code {
  width: 100%;
  background-color: #eee;
  margin: 0px;
  border: 0px;
  padding-left: 4em;
  padding-top: 1em;
  padding-bottom: 1em;
}
.markdown-preview.markdown-preview .token.comment {
  font-style: italic;
  color: #075811;
}
.markdown-preview.markdown-preview .token.function {
  color: #ff6600;
}
.markdown-preview.markdown-preview .token.string {
  color: blue;
}
.markdown-preview.markdown-preview .token.number {
  color: #237465;
}
.markdown-preview.markdown-preview .token.directive-hash {
  color: #06615e;
}
.markdown-preview.markdown-preview .token.class-name {
  color: teal;
}
.markdown-preview.markdown-preview .token.keyword {
  font-style: italic;
  font-weight: 1100;
}
.markdown-preview.markdown-preview .mstyle,
.markdown-preview.markdown-preview .mrow,
.markdown-preview.markdown-preview .mfrac,
.markdown-preview.markdown-preview .math,
.markdown-preview.markdown-preview .mord,
.markdown-preview.markdown-preview .mo,
.markdown-preview.markdown-preview .mi,
.markdown-preview.markdown-preview .mn {
  font-weight: bolder;
  /*数学加粗*/
  line-height: 2em;
  color: #bf39b4;
  text-shadow: 1px 1px #ffffff;
  /*亮*/
}
.markdown-preview.markdown-preview .node {
  font-size: 14px;
  vertical-align: middle;
  min-width: 100px;
}

      </style>
    </head>
    <body for="html-export">
      <div class="mume markdown-preview  ">
      <h1 class="mume-header" id="c%E6%A0%87%E5%87%86%E5%8F%98%E8%BF%81">C++&#x6807;&#x51C6;&#x53D8;&#x8FC1;</h1>

<hr>
<p><img src="imgs/img.png" alt="Alt text"><br>
C++23 &#x5C06;&#x4F1A;&#x662F; C++20 &#x540E;&#x7684;&#x4E0B;&#x4E00;&#x4E2A; C++ &#x6807;&#x51C6;&#x3002;&#x8FD9;&#x4E2A;&#x65B0;&#x6807;&#x51C6;&#x5BF9; C++ &#x8FDB;&#x884C;&#x4E86;&#x5927;&#x5E45;&#x6539;&#x8FDB;&#xFF0C;&#x4F46;&#x5176;&#x5F71;&#x54CD;&#x529B;&#x5374;&#x4E0D;&#x5982; C++98&#x3001;C++11 &#x6216; C++20 &#x90A3;&#x6837;&#x7FFB;&#x5929;&#x8986;&#x5730;&#x3002;C++23 &#x66F4;&#x50CF;&#x662F; C++17 &#x7684;&#x4F20;&#x7EDF;&#x5EF6;&#x7EED;&#x3002;</p>
<p>C++ &#x5DF2;&#x6709;&#x8D85;&#x8FC7; 40 &#x5E74;&#x7684;&#x5386;&#x53F2;&#x4E86;&#x3002;&#x90A3;&#x4E48;&#xFF0C;&#x5728;&#x8FD9;&#x4E9B;&#x5E74;&#x91CC;&#xFF0C;C++ &#x90FD;&#x7ECF;&#x5386;&#x4E86;&#x4EC0;&#x4E48;&#x53D8;&#x5316;&#x5462;&#xFF1F;&#x4EE5;&#x4E0B;&#x662F;&#x4E00;&#x4E2A;&#x7B80;&#x8981;&#x7684;&#x56DE;&#x7B54;&#xFF0C;&#x4E00;&#x76F4;&#x5EF6;&#x7EED;&#x5230; C++23&#x3002;</p>
<center>
<h3>C++98</h3>
<hr>
</center>
<p>&#x5728; 20 &#x4E16;&#x7EAA; 80 &#x5E74;&#x4EE3;&#x672B;&#xFF0C;Bjarne Stroustrup &#x548C; Margaret A. Ellis &#x5408;&#x8457;&#x4E86;&#x4ED6;&#x4EEC;&#x7684;&#x8457;&#x540D;&#x4E66;&#x7C4D; Annotated C++ Reference Manual&#xFF08;&#x6CE8;&#x91CA;&#x7248; C++ &#x53C2;&#x8003;&#x624B;&#x518C;&#xFF0C;&#x7B80;&#x79F0; ARM&#xFF09;&#x3002;&#x8FD9;&#x4E9B;&#x4E66;&#x6709;&#x4E24;&#x4E2A;&#x76EE;&#x7684;&#x3002;&#x9996;&#x5148;&#xFF0C;&#x90A3;&#x65F6;&#x5B58;&#x5728;&#x8BB8;&#x591A;&#x72EC;&#x7ACB;&#x7684; C++ &#x5B9E;&#x73B0;&#x3002;&#x56E0;&#x6B64;&#xFF0C;ARM &#x5B9A;&#x4E49;&#x4E86; C++ &#x7684;&#x529F;&#x80FD;&#x3002;&#x5176;&#x6B21;&#xFF0C;ARM &#x662F;&#x7B2C;&#x4E00;&#x4E2A; C++ &#x6807;&#x51C6; C++98&#xFF08;ISO/IEC 14882&#xFF09;&#x7684;&#x57FA;&#x7840;&#x3002;C++98 &#x6709;&#x51E0;&#x4E2A;&#x5173;&#x952E;&#x7279;&#x6027;&#xFF1A;&#x6A21;&#x677F;&#x3001;&#x5305;&#x542B;&#x5BB9;&#x5668;&#x548C;&#x7B97;&#x6CD5;&#x7684;&#x6807;&#x51C6;&#x6A21;&#x677F;&#x5E93;&#xFF08;STL&#xFF09;&#x3001;&#x5B57;&#x7B26;&#x4E32;&#x548C; IO &#x6D41;&#x3002;</p>
<center>
<h3>C++03</h3>
<hr>
</center>
<p>&#x968F;&#x7740; C++03&#xFF08;14882:2003&#xFF09;&#xFF0C;C++98 &#x5F97;&#x5230;&#x4E86;&#x4E00;&#x9879;&#x5FAE;&#x5C0F;&#x7684;&#x6280;&#x672F;&#x4FEE;&#x6B63;&#xFF0C;&#x5C0F;&#x5230;&#x5728;&#x6211;&#x7684;&#x65F6;&#x95F4;&#x7EBF;&#x4E0A;&#x90FD;&#x6CA1;&#x6709;&#x5BB9;&#x8EAB;&#x4E4B;&#x5730;&#x3002;&#x5728;&#x793E;&#x533A;&#x4E2D;&#xFF0C;&#x5305;&#x62EC; C++98 &#x5728;&#x5185;&#x7684; C++03 &#x88AB;&#x79F0;&#x4E3A;&#x4F20;&#x7EDF;&#x7684; C++&#x3002;</p>
<center>
<h3>TR1</h3>
<hr>
</center>
<p>2005 &#x5E74;&#xFF0C;&#x53D1;&#x751F;&#x4E86;&#x4E00;&#x4EF6;&#x4EE4;&#x4EBA;&#x975E;&#x5E38;&#x5174;&#x594B;&#x7684;&#x4E8B;&#x60C5;&#x3002;&#x8FD9;&#x4E00;&#x5E74;&#xFF0C;&#x53D1;&#x5E03;&#x4E86;&#x6240;&#x8C13;&#x7684;&#x6280;&#x672F;&#x62A5;&#x544A; 1&#xFF08;Technical Report 1&#xFF0C;&#x7B80;&#x79F0; TR1&#xFF09;&#x3002;<br>
TR1 &#x662F;&#x5411;&#x7740; C++11&#xFF0C;&#x56E0;&#x6B64;&#x5411;&#x7740;&#x73B0;&#x4EE3; C++ &#x7684;&#x4E00;&#x5927;&#x6B65;&#x3002;TR1&#xFF08;TR 19768&#xFF09;&#x662F;&#x57FA;&#x4E8E; C++ &#x6807;&#x51C6;&#x5316;&#x59D4;&#x5458;&#x4F1A;&#x6210;&#x5458;&#x521B;&#x7ACB;&#x7684; boost &#x9879;&#x76EE;&#x3002;<br>
TR1 &#x6709; 13 &#x4E2A;&#x5E93;&#xFF0C;&#x8FD9;&#x4E9B;&#x5E93;&#x4E5F;&#x6210;&#x4E3A;&#x4E0B;&#x4E00;&#x4E2A; C++ &#x6807;&#x51C6;&#x7684;&#x4E00;&#x90E8;&#x5206;&#x3002;&#x4F8B;&#x5982;&#xFF0C;&#x5E93;&#x5BF9;&#x5E94;&#x5230;&#x6B63;&#x5219;&#x8868;&#x8FBE;&#x5F0F;&#x5E93;&#x3001;&#x968F;&#x673A;&#x6570;&#x5E93;&#x3001;&#x667A;&#x80FD;&#x6307;&#x9488;&#x5982; std::shared_ptr&#xFF0C;&#x4EE5;&#x53CA;&#x54C8;&#x5E0C;&#x8868;&#x3002;&#x53EA;&#x6709;&#x6240;&#x8C13;&#x7684;&#x7279;&#x6B8A;&#x6570;&#x5B66;&#x51FD;&#x6570;&#x9700;&#x8981;&#x7B49;&#x5230; C++17 &#x624D;&#x80FD;&#x4F7F;&#x7528;&#x3002;</p>
<center>
<h3>C++11</h3>
<hr>
</center>
<p>C++11 &#x662F;&#x4E0B;&#x4E00;&#x4E2A; C++ &#x6807;&#x51C6;&#xFF0C;&#x4F46;&#x6211;&#x4EEC;&#x901A;&#x5E38;&#x79F0;&#x4E4B;&#x4E3A;<strong>&#x73B0;&#x4EE3; C++</strong>&#x3002;&#x73B0;&#x4EE3; C++ &#x4E5F;&#x5305;&#x62EC;&#x4E86; <strong>C++14</strong> &#x548C; <strong>C++17</strong>&#x3002;<br>
C++11 &#x62E5;&#x6709;&#x8BB8;&#x591A;&#x7279;&#x6027;&#xFF0C;&#x8FD9;&#x4E9B;&#x7279;&#x6027;&#x4ECE;&#x6839;&#x672C;&#x4E0A;&#x6539;&#x53D8;&#x4E86;&#x6211;&#x4EEC;&#x7F16;&#x5199; C++ &#x7A0B;&#x5E8F;&#x7684;&#x65B9;&#x5F0F;&#x3002;&#x4F8B;&#x5982;&#xFF0C;C++11 &#x5F15;&#x5165;&#x4E86; TR1 &#x7684;&#x7EC4;&#x4EF6;&#xFF0C;&#x8FD8;&#x6709;&#x79FB;&#x52A8;&#x8BED;&#x4E49;&#x3001;&#x5B8C;&#x7F8E;&#x8F6C;&#x53D1;&#x3001;&#x53D8;&#x957F;&#x6A21;&#x677F;&#x6216; `constexpr&#xFF0C;&#x8FD8;&#x6709;&#x5176;&#x4ED6;&#x8BF8;&#x591A;&#x7279;&#x6027;&#x3002;<br>
&#x968F;&#x7740; C++11 &#x7684;&#x5230;&#x6765;&#xFF0C;&#x6211;&#x4EEC;&#x8FD8;&#x5F97;&#x5230;&#x4E86;&#x4E00;&#x4E2A;&#x5185;&#x5B58;&#x6A21;&#x578B;&#x4F5C;&#x4E3A;&#x57FA;&#x7840;&#x7684;&#x7EBF;&#x7A0B;&#x6A21;&#x578B;&#xFF0C;&#x4EE5;&#x53CA;&#x4E00;&#x4E2A;&#x7EBF;&#x7A0B; API&#x3002;</p>
<center>
<h3>C++14</h3>
<hr>
</center>
<p>C++14 &#x662F;&#x4E00;&#x4E2A;&#x5C0F;&#x578B;&#x7684; C++ &#x6807;&#x51C6;&#x3002;&#x5B83;&#x5F15;&#x5165;&#x4E86;&#x8BFB;&#x5199;&#x9501;&#x3001;&#x6CDB;&#x5316;&#x7684; lambdas &#x548C;&#x6CDB;&#x5316;&#x7684; constexpr &#x51FD;&#x6570;&#x3002;</p>
<center>
<h3>C++17</h3>
<hr>
</center>
<p>C++17 &#x6709;&#x4E24;&#x4E2A;&#x663E;&#x8457;&#x7684;&#x7279;&#x6027;&#xFF1A;<strong>&#x5E76;&#x884C; STL</strong> &#x548C;<strong>&#x6807;&#x51C6;&#x5316;&#x7684;&#x6587;&#x4EF6;&#x7CFB;&#x7EDF;</strong>&#x3002;<br>
&#x5927;&#x7EA6; 80 &#x4E2A; STL &#x7B97;&#x6CD5;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x6240;&#x8C13;&#x7684;&#x6267;&#x884C;&#x7B56;&#x7565;&#x8FDB;&#x884C;&#x6267;&#x884C;&#x3002;<br>
&#x8FD9;&#x610F;&#x5473;&#x7740; std::sort(std::execute::par, vec.begin(), vec.end()) &#x5BF9; C++ &#x5B9E;&#x73B0;&#x7684;&#x6392;&#x5E8F;&#x5BB9;&#x5668; vec &#x662F;&#x4E00;&#x4E2A;&#x5E76;&#x884C;&#x5904;&#x7406;&#x7684;&#x63D0;&#x793A;&#x3002;<br>
&#x6B64;&#x5916;&#xFF0C;&#x4F60;&#x8FD8;&#x53EF;&#x4EE5;&#x6307;&#x5B9A;&#x6392;&#x5E8F;&#x5E94;&#x6309;&#x987A;&#x5E8F;&#x6267;&#x884C;&#xFF08;std::execution::seq&#xFF09;&#x6216;&#x5411;&#x91CF;&#x5316;&#x6267;&#x884C;&#xFF08;std::execution::par_unseq&#xFF09;&#x3002;&#x5C31;&#x50CF; C++11 &#x4E00;&#x6837;&#xFF0C;boost &#x5BF9; C++17 &#x4E5F;&#x4EA7;&#x751F;&#x4E86;&#x6DF1;&#x8FDC;&#x5F71;&#x54CD;&#x3002;&#x6211;&#x4EEC;&#x4ECE; boost &#x83B7;&#x53D6;&#x4E86;&#x6587;&#x4EF6;&#x7CFB;&#x7EDF;&#x4EE5;&#x53CA;&#x4E09;&#x79CD;&#x65B0;&#x7684;&#x6570;&#x636E;&#x7C7B;&#x578B;&#xFF1A;std::optional&#x3001;std::variant &#x548C; std::any&#x3002;</p>
<center>
<h3>C++20</h3>
<hr>
</center>
<p>C++20 &#x7684;&#x53D8;&#x9769;&#x5BF9;&#x6211;&#x4EEC;&#x7F16;&#x5199; C++ &#x7A0B;&#x5E8F;&#x7684;&#x65B9;&#x5F0F;&#x4EA7;&#x751F;&#x4E86;&#x6839;&#x672C;&#x6027;&#x7684;&#x5F71;&#x54CD;&#xFF0C;&#x5176;&#x7A0B;&#x5EA6;&#x4E0D;&#x4E9A;&#x4E8E; C++11&#x3002;<br>
&#x7279;&#x522B;&#x662F;&#x4EE5;&#x4E0B;&#x56DB;&#x4E2A;&#x91CD;&#x8981;&#x7279;&#x6027;&#xFF1A;<code>Ranges&#xFF08;&#x8303;&#x56F4;&#x5E93;&#xFF09;</code>&#xFF0C;<code>Coroutines&#xFF08;&#x534F;&#x7A0B;&#xFF09;</code>&#xFF0C;<code>Concepts&#xFF08;&#x6982;&#x5FF5;&#xFF09;</code>&#xFF0C;&#x4EE5;&#x53CA; <code>Modules&#xFF08;&#x6A21;&#x5757;&#xFF09;</code>&#x3002;<br>
&#x65B0;&#x7684; <strong>Ranges</strong> &#x5E93;&#x8BA9;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x5728;&#x5BB9;&#x5668;&#x4E0A;&#x8868;&#x8FBE;&#x7B97;&#x6CD5;&#xFF0C;&#x4F7F;&#x7528;&#x7BA1;&#x9053;&#x7B26;&#x7EC4;&#x5408;&#x7B97;&#x6CD5;&#xFF0C;&#x5E76;&#x5C06;&#x5B83;&#x4EEC;&#x5E94;&#x7528;&#x4E8E;&#x65E0;&#x9650;&#x6570;&#x636E;&#x6D41;&#x3002;<br>
&#x591A;&#x4E8F;&#x4E86; <strong>Coroutines</strong>&#xFF0C;&#x5F02;&#x6B65;&#x7F16;&#x7A0B;&#x5728; C++ &#x4E2D;&#x53EF;&#x80FD;&#x4F1A;&#x6210;&#x4E3A;&#x4E3B;&#x6D41;&#x3002;&#x534F;&#x7A0B;&#x662F;&#x534F;&#x4F5C;&#x4EFB;&#x52A1;&#x3001;&#x4E8B;&#x4EF6;&#x5FAA;&#x73AF;&#x3001;&#x65E0;&#x9650;&#x6570;&#x636E;&#x6D41;&#x6216;&#x7BA1;&#x9053;&#x7684;&#x57FA;&#x7840;&#x3002;<br>
<strong>Concepts</strong> &#x5C06;&#x6539;&#x53D8;&#x6211;&#x4EEC;&#x5BF9;&#x6A21;&#x677F;&#x7684;&#x601D;&#x8003;&#x548C;&#x7F16;&#x7A0B;&#x65B9;&#x5F0F;&#x3002;&#x5B83;&#x4EEC;&#x662F;&#x6709;&#x6548;&#x6A21;&#x677F;&#x53C2;&#x6570;&#x7684;&#x8BED;&#x4E49;&#x7C7B;&#x522B;&#x3002;&#x5B83;&#x4EEC;&#x8BA9;&#x4F60;&#x80FD;&#x591F;&#x76F4;&#x63A5;&#x5728;&#x7C7B;&#x578B;&#x7CFB;&#x7EDF;&#x4E2D;&#x8868;&#x8FBE;&#x4F60;&#x7684;&#x610F;&#x56FE;&#x3002;&#x5982;&#x679C;&#x51FA;&#x4E86;&#x4EC0;&#x4E48;&#x95EE;&#x9898;&#xFF0C;&#x4F60;&#x4F1A;&#x6536;&#x5230;&#x7B80;&#x6D01;&#x7684;&#x9519;&#x8BEF;&#x4FE1;&#x606F;&#x3002;<br>
<strong>Modules</strong> &#x5C06;&#x514B;&#x670D;&#x5934;&#x6587;&#x4EF6;&#x7684;&#x9650;&#x5236;&#x3002;&#x5B83;&#x4EEC;&#x5E26;&#x6765;&#x4E86;&#x5F88;&#x591A;&#x597D;&#x5904;&#x3002;&#x4F8B;&#x5982;&#xFF0C;&#x9884;&#x5904;&#x7406;&#x5668;&#x5C06;&#x53D8;&#x5F97;&#x4E0D;&#x518D;&#x9700;&#x8981;&#x3002;&#x6700;&#x7EC8;&#xFF0C;&#x6211;&#x4EEC;&#x8FD8;&#x5C06;&#x62E5;&#x6709;&#x66F4;&#x5FEB;&#x7684;&#x6784;&#x5EFA;&#x65F6;&#x95F4;&#xFF0C;&#x66F4;&#x7B80;&#x5355;&#x7684;&#x5305;&#x6784;&#x5EFA;&#x65B9;&#x5F0F;&#x3002;</p>
<center>
<h3>C++23</h3>
<hr>
</center>
<p>&#x73B0;&#x5728;&#xFF08;2023&#x5E74;7&#x6708;&#xFF09;&#xFF0C;C++23 &#x5DF2;&#x7ECF;&#x5B8C;&#x6210;&#xFF0C;&#x5E76;&#x8FDB;&#x5165;&#x4E86;&#x6700;&#x7EC8;&#x6295;&#x7968;&#x9636;&#x6BB5;&#x3002;<br>
C++23 &#x63D0;&#x4F9B;&#x4E86;&#x4E00;&#x79CD;&#x5C0F;&#x5DE7;&#x4F46;&#x5F71;&#x54CD;&#x6DF1;&#x8FDC;&#x7684;&#x6838;&#x5FC3;&#x8BED;&#x8A00;&#x7279;&#x6027;&#x2014;&#x2014;this &#x7684;&#x63A8;&#x5BFC;&#x3002;&#x8FD9;&#x79CD;&#x7279;&#x6027;&#x5141;&#x8BB8;&#x4F60;&#xFF0C;&#x7C7B;&#x4F3C;&#x4E8E; Python&#xFF0C;&#x5728;&#x6210;&#x5458;&#x51FD;&#x6570;&#x5B9A;&#x4E49;&#x4E2D;&#x660E;&#x786E;&#x5730;&#x4F20;&#x9012;&#x9690;&#x5F0F;&#x4F20;&#x9012;&#x7684; this &#x6307;&#x9488;&#x3002;&#x5F15;&#x5165; this &#x7684;&#x63A8;&#x5BFC;&#x540E;&#xFF0C;&#x4E00;&#x4E9B; C++ &#x4E2D;&#x590D;&#x6742;&#x7684;&#x6280;&#x672F;&#xFF0C;&#x4F8B;&#x5982; CRTP &#xFF08;&#x5947;&#x5F02;&#x9012;&#x5F52;&#x6A21;&#x677F;&#x6A21;&#x5F0F;&#xFF09; &#x6216;&#x8005; Overload Pattern&#xFF08;&#x8FC7;&#x8F7D;&#x6A21;&#x5F0F;&#xFF09;&#xFF0C;&#x5C06;&#x53D8;&#x5F97;&#x8F7B;&#x800C;&#x6613;&#x4E3E;&#x3002;<br>
C++23 &#x5E93;&#x8FD8;&#x5C06;&#x65B0;&#x589E;&#x5F88;&#x591A;&#x6709;&#x610F;&#x601D;&#x7684;&#x7279;&#x6027;&#x3002;&#x4F60;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x4F7F;&#x7528; <code>import std;</code> &#x5BFC;&#x5165;&#x6807;&#x51C6;&#x5E93;&#xFF0C;&#x6216;&#x8005;&#x5728; <code>std::print</code> &#x548C; <code>std::println</code> &#x4E2D;&#x5E94;&#x7528; C++20 &#x7684;&#x683C;&#x5F0F;&#x5B57;&#x7B26;&#x4E32;&#x3002;<br>
&#x6B64;&#x5916;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x51FA;&#x4E8E;&#x6027;&#x80FD;&#x8003;&#x8651;&#xFF0C;&#x83B7;&#x5F97;&#x5982; <code>std::flat_map</code> &#x8FD9;&#x6837;&#x7684;&#x6241;&#x5E73;&#x5316;&#x5173;&#x8054;&#x5BB9;&#x5668;&#xFF0C;&#x8FD9;&#x4E9B;&#x5BB9;&#x5668;&#x5728;&#x65F6;&#x95F4;&#x548C;&#x7A7A;&#x95F4;&#x590D;&#x6742;&#x5EA6;&#x4E0A;&#x505A;&#x4E86;&#x4E00;&#x4E2A;&#x5E73;&#x8861;&#x3002;<code>std::flap_map</code> &#x53EF;&#x53D6;&#x4EE3; <code>std::map</code> &#x3002;<br>
<code>std::optional</code> &#x7684;&#x63A5;&#x53E3;&#x5C06;&#x6269;&#x5C55;&#x4E3A;&#x5177;&#x6709;&#x7EC4;&#x5408;&#x6027;&#x7684;&#x5355;&#x5B50;&#x63A5;&#x53E3;&#x3002;<br>
&#x65B0;&#x7684;&#x6570;&#x636E;&#x7C7B;&#x578B; <code>std::expected</code> &#x5DF2;&#x7ECF;&#x5177;&#x6709;&#x53EF;&#x7EC4;&#x5408;&#x7684;&#x63A5;&#x53E3;&#xFF0C;&#x53EF;&#x4EE5;&#x7528;&#x4E8E;&#x9519;&#x8BEF;&#x5904;&#x7406;&#xFF0C;&#x5B58;&#x50A8;&#x9884;&#x671F;&#x503C;&#x6216;&#x975E;&#x9884;&#x671F;&#x503C;&#x3002;<br>
&#x591A;&#x4E8F;&#x4E86; <code>std::mdspan</code>&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x521B;&#x5EFA;&#x548C;&#x64CD;&#x4F5C;&#x591A;&#x7EF4;&#x6570;&#x7EC4;&#x3002;<br>
&#x6700;&#x540E;&#xFF0C;<code>std::generator</code> &#x662F;&#x7B2C;&#x4E00;&#x4E2A;&#x7528;&#x4E8E;&#x521B;&#x5EFA;&#x6570;&#x5B57;&#x6D41;&#x7684;&#x5177;&#x4F53;&#x7684;&#x534F;&#x7A0B;&#x3002;<code>std::generator</code> &#x662F; Ranges &#x5E93;&#x7684;&#x4E00;&#x90E8;&#x5206;&#xFF0C;&#x8BE5;&#x5E93;&#x4E5F;&#x5C06;&#x5728; C++23 &#x4E2D;&#x5F97;&#x5230;&#x589E;&#x5F3A;&#x3002;</p>

      </div>
      
      
    
    
    
    
    
    
    
    
  
    </body></html>